
/*
 * En este archivo, implementaremos las funciones definidas
 * en el archivo vectores.h
 */

#include <stdlib.h>
#include <stdio.h>
#include <malloc.h>
#include <math.h>
#include "vectores.h"


/*
 * Implementación de la función definida en cabecera.
 */
struct VECTOR* crearVector(int dimension) {
    
    // No existen vectores de dimension 0 o negativa!
    if (dimension<1) {
        return NULL;
    }
    
    // Reservamos la memoria necesaria para guardar el vector en memoria
    int *vectorTmp = (int *)malloc(sizeof(int)*dimension);

    // Creamos el objeto que devolveremos y lo devolvemos
    struct VECTOR * vector = malloc(sizeof(struct VECTOR));
    vector->dimension = dimension;
    vector->elementos = vectorTmp;
    
    return vector;
    
}

/*
 * Implementación de la función definida en cabecera.
 */
struct VECTOR* crearVectorSinElementos(int dimension) {
    
    // No existen vectores de dimension 0 o negativa!
    if (dimension<1) {
        return NULL;
    }

    // Creamos el objeto que devolveremos y lo devolvemos
    struct VECTOR * vector = malloc(sizeof(struct VECTOR));
    vector->dimension = dimension;
    vector->elementos = NULL;
    
    return vector;
    
}

/*
 * Implementación de la función definida en cabecera.
 */
void eliminarVector(struct VECTOR *vector) {
    
    // Eliminamos el vector de elementos
    free(vector->elementos);
    vector->elementos = NULL;

    // Eliminamos el objeto vector
    free(vector);
    vector = NULL;
    
}
